package org.jeecg.modules.xl.kuaimai.service;

import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.util.DateUtils;
import org.jeecg.common.util.SpringContextUtils;
import org.jeecg.modules.xl.kuaimai.KuaimaiAPIConfig;
import org.jeecg.modules.xl.kuaimai.entity.XlKuaimaiStock;
import org.jeecg.modules.xl.kuaimai.mapper.XlKuaimaiStockMapper;
import org.jeecg.modules.xl.kuaimai.vo.KMStockStatusRespVO;
import org.quartz.*;

import java.util.*;

/**
 * 快麦采购单同步
 */
@PersistJobDataAfterExecution
@DisallowConcurrentExecution
@Slf4j
public class KMPurchaseJob implements Job {

    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        log.info(" --- 同步任务调度开始 --- ");
        try {

            Map<String, String> params = Maps.newHashMap();
            params.put("pageNo","1");
            params.put("pageSize","200");
            params.put("status","FINISHED");
            Map<String, String> kmPurchaseOrder = KuaimaiAPIConfig.getKuaiMaiAPIPublicParam("purchase.order.query",params);
            String firstPageStr = HttpUtil.post("https://gw3.superboss.cc/router", JSON.toJSONString(kmPurchaseOrder));

//            KMStockStatusRespVO FirstPagekmStockStatusResp = JSON.parseObject(firstPageStr, KMStockStatusRespVO.class);
//
//            //System.out.println(firstPageStr);
//            int total = FirstPagekmStockStatusResp.getTotal().intValue();//数据总量
//
//            //计算总页数
//            int pageTotal =  (int)Math.ceil( (double)total / 100 );
//
//            List<XlKuaimaiStock> haotemaiStockList = new ArrayList<>();
//            //处理第一页
//            //System.out.println(FirstPagekmStockStatusResp.getMsg());
//            //System.out.println(FirstPagekmStockStatusResp.getTotal());
//            //System.out.println(FirstPagekmStockStatusResp.getStockStatusVoList().size());
//            List<XlKuaimaiStock> firstPageList = FirstPagekmStockStatusResp.getStockStatusVoList();
//            Set<String> uniqueIdSet = new HashSet<>();
//            for(XlKuaimaiStock  xlKuaimaiStockTemp : firstPageList){
////            if(ObjectUtil.isNotEmpty(xlKuaimaiStockTemp.getSuppliernames())&&xlKuaimaiStockTemp.getSuppliernames().contains("广州好特麦")){
////                xlKuaimaiStockTemp.setSltAvailableStock(xlKuaimaiStockTemp.getTotalavailablestock());
////                xlKuaimaiStockTemp.setSltLockStock(0L);
////                haotemaiStockList.add(xlKuaimaiStockTemp);
////            }
//                if(uniqueIdSet.contains(xlKuaimaiStockTemp.getMainouterid())){
//                    continue;
//                }
//                uniqueIdSet.add(xlKuaimaiStockTemp.getMainouterid());
//                xlKuaimaiStockTemp.setSltAvailableStock(xlKuaimaiStockTemp.getTotalavailablestock());
//                xlKuaimaiStockTemp.setSltLockStock(0L);
//                haotemaiStockList.add(xlKuaimaiStockTemp);
//            }
//
//            Thread.sleep(1000);
//            //处理第二页以后
//            for(int i = 2;i <= pageTotal; i++){
//                log.info("处理第{}页的数据", i);
//                Map<String, String> paramsTep = KuaimaiAPIConfig.getKMStockParam("100",String.valueOf(i));
//                String resultJsonTemp = HttpUtil.post("https://gw3.superboss.cc/router", JSON.toJSONString(paramsTep));
//
//                KMStockStatusRespVO kmStockStatusRespTemp = JSON.parseObject(resultJsonTemp, KMStockStatusRespVO.class);
//
//                for(XlKuaimaiStock  xlKuaimaiStockTemp : kmStockStatusRespTemp.getStockStatusVoList()){
////                if(ObjectUtil.isNotEmpty(xlKuaimaiStockTemp.getSuppliernames())&&xlKuaimaiStockTemp.getSuppliernames().contains("广州好特麦")){
////                    xlKuaimaiStockTemp.setSltAvailableStock(xlKuaimaiStockTemp.getTotalavailablestock());
////                    xlKuaimaiStockTemp.setSltLockStock(0L);
////                    haotemaiStockList.add(xlKuaimaiStockTemp);
////                }
//                    if(uniqueIdSet.contains(xlKuaimaiStockTemp.getMainouterid())){
//                        continue;
//                    }
//                    uniqueIdSet.add(xlKuaimaiStockTemp.getMainouterid());
//                    xlKuaimaiStockTemp.setSltAvailableStock(xlKuaimaiStockTemp.getTotalavailablestock());
//                    xlKuaimaiStockTemp.setSltLockStock(0L);
//                    haotemaiStockList.add(xlKuaimaiStockTemp);
//                }
//            }
//
//
//            XlKuaimaiStockMapper xlKuaimaiStockMapper =  SpringContextUtils.getBean(XlKuaimaiStockMapper.class);
//            //先清空表
//            xlKuaimaiStockMapper.truncate();
//            //在批量插入
//            xlKuaimaiStockMapper.batchInsert(haotemaiStockList);
//
//            log.info("广州好特麦的库存流水记录有{}条",haotemaiStockList.size());

        } catch (Exception e) {
            e.printStackTrace();
        }
        //测试发现 每5秒执行一次
        log.info(" --- 执行完毕，时间："+DateUtils.now()+"---");
    }

}
